<?php
class class_CargaTurnos {
	private $_db; 
	function __construct()
	{
		$this->config();
	}
	function method_delTurno($params, $error) {
		$p = $params[0];
		
		$q = mysql_query("SELECT
		tabla
		FROM turnos
		INNER JOIN planes USING(cod_plan)
		INNER JOIN obras_sociales USING(cod_obra_social)
		WHERE turnos.cod_turno = '" . $p->cod_turno . "'
		");
		
		$r_os = mysql_fetch_object($q);
		mysql_query("START TRANSACTION");
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		
		$q = mysql_query("DELETE FROM turnos_os WHERE cod_turno = '" . $p->cod_turno . "' LIMIT 1");
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); mysql_query("ROLLBACK"); return $error; }
		
		$q = mysql_query("DELETE FROM turnos WHERE cod_turno = '" . $p->cod_turno . "' LIMIT 1");
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); mysql_query("ROLLBACK"); return $error; }
		
		mysql_query("COMMIT");
		
		return true;
	}
	function method_addTurno($params, $error) {
		$p = $params[0];
		
// 		$q = mysql_query("SELECT
// 		tabla
// 		FROM planes
// 		INNER JOIN obras_sociales USING(cod_obra_social)
// 		WHERE cod_plan = '" . $p->cod_plan . "'
// 		");
		
// 		if (mysql_error()) echo mysql_error();
		
// 		$r = mysql_fetch_object($q);
// 		$cod_habilitacion = "";
// 		$codigo_habilitacion = "";
// 		switch ($r->tabla) {
// 			case 'apross':
// 			case 'family':
// 			case 'parque_salud':
// 			case 'surbac':
// 				$cod_habilitacion = "os_" . $r->tabla . ".codigo_habilitacion,";
// 				$codigo_habilitacion = $p->cod_habilitacion . ", ";
// 			break;
// 		}
		
		mysql_query("START TRANSACTION");
		
		$q = mysql_query("INSERT INTO turnos
		(cod_clinica,
		dni_usuario,
		dni_paciente,
		cod_plan,
		motivo,
		fecha_asignada,
		hora_asignada,
		entreturno,
		tipo,
		estado,
		dni_usuario_registra
		) VALUES (
		'" . $p->cod_clinica . "',
		'" . $p->dni_usuario . "',
		'" . $p->dni_paciente . "',
		'" . $p->cod_plan . "',
		'MOTIVO ADMINISTRATIVO',
		'" . $p->fecha_asignada . "',
		'23:59:59',
		'N',
		'O',
		'A',
		'" . $_SESSION['dni_usuario'] . "'
		)");
		
		$cod_turno = mysql_insert_id();
		
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); mysql_query("ROLLBACK"); return $error; }
		
		$q = mysql_query("
		INSERT INTO turnos_os
		(cod_turno,
		fecha,
		cod_nomenclador,
		observaciones,
		codigo_habilitacion,
		importe,
		estado
		) VALUES (
		'" . $cod_turno . "',
		'" . $p->fecha_asignada . "',
		'" . $p->cod_nomenclador . "',
		'" . $p->observaciones . "',
		'" . $p->cod_habilitacion . "',
		'" . $p->importe . "',
		'A'
		)");
		
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); mysql_query("ROLLBACK"); return $error; }
		
		mysql_query("COMMIT");
		
		return true;
	}
	function method_getTurnosCargados($params, $error) {
		$p = $params[0];
		
		switch ($p->filtro) {
			case "F":
				$filtro = " AND turnos.fecha_asignada LIKE '%" . $p->txtfiltro . "%' ";
			break;
			case "M":
				$filtro = " AND usuarios.usuario LIKE '%" . $p->txtfiltro . "%' ";
			break;
			case "P":
				$filtro = " AND (pacientes.dni_paciente LIKE '%" . $p->txtfiltro . "%' OR pacientes.apellido LIKE '%" . $p->txtfiltro . "%' OR pacientes.nombres LIKE '%" . $p->txtfiltro . "%') ";
			break;
			case "O":
				$filtro = " AND (planes.descripcion LIKE '%" . $p->txtfiltro . "%' OR obras_sociales.descripcion LIKE '%" . $p->txtfiltro . "%') ";
			break;
			case "E":
				$filtro = " AND usuarios.usuario LIKE '%" . $p->txtfiltro . "%' ";
			break;
			default:
				$filtro = "";
			break;
		}
		$q = mysql_query("SELECT
		cod_turno,
		fecha_asignada,
		usuario,
		CONCAT(pacientes.dni_paciente, ' - ', pacientes.apellido, ', ', pacientes.nombres) as paciente,
		CONCAT(planes.descripcion, ' - ', obras_sociales.descripcion) as forma_pago,
		prestaciones.descripcion as prestacion,
		turnos_os.codigo_habilitacion,
		turnos_os.importe
		FROM turnos
		INNER JOIN usuarios USING(dni_usuario)
		INNER JOIN pacientes USING(dni_paciente)
		INNER JOIN planes USING(cod_plan)
		INNER JOIN obras_sociales USING(cod_obra_social)
		INNER JOIN turnos_os USING(cod_turno)
		INNER JOIN nomenclador USING(cod_nomenclador)
		INNER JOIN prestaciones USING(cod_prestacion)
		WHERE hora_asignada = '23:59:59'
		AND turnos.estado = 'A'
		" . $filtro . "
		");
		
		if (mysql_error()) echo mysql_error();
		
		$res = "";
		
		while ($r = mysql_fetch_object($q)) {
			/*
			$cod_habilitacion = "";
			switch ($r->tabla) {
				case 'apross':
				case 'family':
				case 'parque_salud':
				case 'surbac':
					$cod_habilitacion = "os_" . $r->tabla . ".codigo_habilitacion,";
				break;
			}
			
			
			$q_os = mysql_query("SELECT
			prestaciones.descripcion as prestacion,
			turnos_os.codigo_habilitacion,
			turnos_os.importe
			FROM turnos_os
			INNER JOIN nomenclador USING(cod_nomenclador)
			INNER JOIN prestaciones USING(cod_prestacion)
			WHERE cod_turno = '" . $r->cod_turno . "'
			");
			
			if (mysql_error()) echo mysql_error();
			
			$r_os = mysql_fetch_object($q_os);
			$r->codigo_habilitacion = $r_os->codigo_habilitacion;
			$r->prestacion = $r_os->prestacion;
			$r->importe = $r_os->importe;
			*/
			$res []= $r;
		}
		
		return $res;
	}
	function method_getMedicos($params, $error) {
		$this->_db->setQuery("
		SELECT dni_usuario as value, 
		CONCAT(apellido, ', ', nombres) as label 
		FROM usuarios 
		WHERE cod_tipo_usuario = '3' 
		AND estado = 'A'
		ORDER BY label");
		$this->_db->alter();
		if (mysql_error()) {
			$error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error;
		}
		$regs = $this->_db->loadResult();
		
		return $regs;
    }
    function method_getPacientes($params, $error) {
    	$this->_db->setQuery("SELECT 
    	dni_paciente as value,
    	CONCAT(dni_paciente, ' - ', apellido, ', ', nombres) as label
    	FROM pacientes
    	ORDER BY apellido, nombres
    	");
    	$regs = $this->_db->loadResult();
    	
    	return $regs;
    }
    
    function method_getPlanesPaciente ($params, $error) {
    	$p = $params[0];
    	
    	$q = mysql_query("SELECT
    	cod_plan1, cod_plan2
    	FROM pacientes
    	WHERE dni_paciente = '" . $p->dni_paciente . "'
    	");
    	
    	$r = mysql_fetch_object($q);
    	
    	$this->_db->setQuery("SELECT 
    	cod_plan as value,
    	CONCAT(planes.descripcion, ' - ', obras_sociales.descripcion) as label
    	FROM planes
    	INNER JOIN obras_sociales USING(cod_obra_social)
    	WHERE cod_plan IN ('" . $r->cod_plan1 . "', '" . $r->cod_plan2 . "')
    	ORDER BY planes.descripcion, obras_sociales.descripcion
    	");
    	
    	$regs = $this->_db->loadResult();
    	
    	return $regs;
    }
    
    function method_getPrestaciones ($params, $error) {
    	$p = $params[0];
    	$this->_db->setQuery("SELECT
		nomenclador.cod_nomenclador as value,
    	CONCAT(prestaciones_rubros.descripcion, ' - ', prestaciones.descripcion) as label
    	FROM nomenclador
    	INNER JOIN prestaciones USING(cod_prestacion)
    	INNER JOIN prestaciones_rubros USING(cod_prestacion_rubro)
    	WHERE cod_plan = '" . $p->cod_plan . "' 
    	AND importe != 0 
    	AND importe IS NOT NULL
    	ORDER BY label
    	");
    	 
    	$regs = $this->_db->loadResult();
    	 
    	return $regs;
    }
    
    function method_getImporte ($params, $error) {
    	$p = $params[0];
    	$q = mysql_query("SELECT
    	importe
    	FROM nomenclador
    	WHERE cod_nomenclador = '" . $p->cod_nomenclador . "'
    	LIMIT 1
    	");
    	
    	$r = mysql_fetch_object($q);
    	
    	return $r->importe;
    }
    
    private function config() {
		require_once("conexion.php");
		require_once("DataBase.php");
		$this->_db = new DataBase($SERVIDOR,$USUARIO,$PASSWORD,$BASE);
		mysql_query("SET NAMES utf8");
	}
}
?>